package com.demo.search.context;

import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.search.IndexSearcher;

import com.demo.search.engine.SearchEngine;

/**
 * 索引管理器
 * 索引管理器是创建、合并索引的管理类
 * 所有集中索引相关的操作都在此实现类内
 * @author ryuu.kk
 *
 */
public interface IndexContext  {

	/**
	 * 取得一个近实时索引(near real time IndexReader)
	 * @return IndexReader
	 */
	IndexReader getIndexReader();
	
	/**
	 * 创建一个近实时索引(near real time IndexReader)
	 * @return IndexReader
	 */
	IndexReader createIndexReader();
	
	/**
	 * 取得一个索引写入对象
	 * @return IndexWriter
	 */
	IndexWriter getIndexWriter();
	
	/**
	 * 创建检索器 
	 * @return IndexSearcher
	 */
	IndexSearcher Sesarchbuilder();
	
	/**
	 * 取得默认对象-Document引擎
	 * @return Engine
	 */
	SearchEngine getEngine();
	
//	/**
//	 * 创建索引
//	 * @param br BufferedReader索引数据流
//	 * @param split String数据流分割器
//	 * @param fieldList List<Field>词源Field
//	 * @return int 索引文件数
//	 * @throws IOException 
//	 */
//	int createIndex(BufferedReader br, String split, String[] name, Store[] store, Index[] index) throws IOException;
//
//	int createIndex(List<Field> fieldList);
}
